home *** CD-ROM | disk | FTP | other *** search
/ Aminet 24 / Aminet 24 (1998)(GTI - Schatztruhe)[!][Apr 1998].iso / Aminet / util / boot / IfNoDrive.lha / IfNoDrive.e < prev    next >
Text File  |  1998-02-08  |  1KB  |  55 lines

  1.  
  2. MODULE 'dos/dos', 'dos/dosextens'
  3.  
  4. PROC main()
  5.  
  6.     DEF drive_present, reboot, delay, args:PTR TO LONG, rdargs,
  7.         drive_name[100]:ARRAY OF CHAR, dos_list:PTR TO doslist,
  8.         flags
  9.  
  10.     IF rdargs:=ReadArgs('DEVICE/A,REBOOT/S,DELAY/N', args:=[NIL, FALSE, 0]:LONG, NIL)
  11.  
  12.         AstrCopy(drive_name, args[0], 100)
  13.         reboot:=(args[1]<>NIL)
  14.  
  15.         delay:=Long(args[2]) * TICKS_PER_SECOND
  16.         IF delay<0 THEN delay:=0; IF delay>1000 THEN delay:=1000
  17.  
  18.         FreeArgs(rdargs)
  19.  
  20.         flags:=(LDF_READ OR LDF_ALL)
  21.  
  22.         IF (dos_list:=LockDosList(flags))
  23.  
  24.             drive_present:=FindDosEntry(dos_list, drive_name, LDF_ALL)
  25.  
  26.             UnLockDosList(flags)
  27.  
  28.             IF (drive_present=FALSE)
  29.  
  30.                 IF reboot; Delay(delay); ColdReboot(); ENDIF
  31.  
  32.                 RETURN 5
  33.  
  34.             ENDIF
  35.  
  36.         ELSE
  37.  
  38.             RETURN 10
  39.  
  40.         ENDIF
  41.  
  42.     ELSE
  43.  
  44.         WriteF('Bad/missing arguments. Type \aIfNoDrive ?\a for the command template.\n')
  45.         RETURN 20
  46.  
  47.     ENDIF
  48.  
  49. ENDPROC
  50.  
  51. CHAR '$VER: IfNoDrive 0.7 (8.2.98)\0'
  52.  
  53.  
  54.  
  55.